﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Odense_Kommune.Controller;
using Odense_Kommune.Interfaces;

namespace Odense_Kommune
{
    /// <summary>
    /// Interaction logic for BrugerOpret.xaml
    /// </summary>
    public partial class BrugerOpret : Window
    {
        Systemcontroller controller;
        Socialarbejder sa;

        public BrugerOpret(Systemcontroller sc, Socialarbejder sa)
        {
            InitializeComponent();
            this.sa = sa;
            controller = sc;
            UpdateGUILeverandører();
        }

        #region Knap Metoder
        private void btnBrugerOpret_Click(object sender, RoutedEventArgs e)
        {
            if (cbLeverandør.SelectedIndex > -1)
            {
                ILeverandør tempLeverandør = (ILeverandør)cbLeverandør.SelectedItem;
                controller.OpretUnderleverandør(txtNavn.Text, pbKode.Password, long.Parse(txtTelefonNr.Text), txtEmail.Text, "", tempLeverandør.Navn);
                this.Close();
                sa.UpdateGUIBrugere();
            }
            else
            {
                MessageBox.Show("Du skal vælge Leverandør");
                cbLeverandør.Focus();
            }
        }

        #endregion

        public void UpdateGUILeverandører()
        {
            cbLeverandør.ItemsSource = null;
            cbLeverandør.ItemsSource = controller.LeverandørCol.ListeafLeverandør;
            cbLeverandør.DisplayMemberPath = "Navn";
        }

        #region Event Metoder
        private void txtTelefonNr_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (!Validering.Tal(txtTelefonNr.Text))
            {
                //position for markør
                int cursorPosition = txtTelefonNr.SelectionStart - 1;

                //fjerner uønskede tegn
                txtTelefonNr.Text = Validering.ValiderTal(txtTelefonNr.Text);

                //fokus på textbox
                txtTelefonNr.Focus();

                //ny position for markør efter fjernelse af uønsket tegn
                txtTelefonNr.Select(cursorPosition, 0);
            }
        }

        private void txtEmail_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (!Validering.Email(txtEmail.Text))
            {
                int cursorPosition = txtEmail.SelectionStart - 1;

                txtEmail.Text = Validering.ValiderEmail(txtEmail.Text);

                txtEmail.Focus();

                txtEmail.Select(cursorPosition, 0);
            }
        }
        #endregion
    }
}
